1. Field of the Invention
Embodiments of the invention generally relate to data backup systems and, more specifically, to a method and apparatus for allocating resources among backup tasks in a data backup system.
2. Description of the Related Art
Computer systems and their components are subject to various failures that may result in the loss of data. For example, a storage device used in or by the computer system may experience a failure (e.g., mechanical, electrical, magnetic, etc.) that may make any data stored on the device unreadable. Erroneous software or hardware operation may corrupt the data stored on a storage device and effectively destroy the data stored on an otherwise properly functioning storage device.
To mitigate the risk of losing data, computer networks include backup systems for making backup copies of data stored on various storage devices. One type of backup system includes a dedicated backup server that backs up target data on one or more storage devices used in or by one or more computer systems, such as workstations and/or application servers. The backup server typically backs up the target data periodically according to a schedule. The data may be backed up initially to disk-based storage and then migrated to an archival storage, such as tape-based storage. The backup server may implement any of various known schemes to backup data, including full backups, incremental backups, differential backups, and the like. A full backup is a complete copy of the target data. An incremental backup is a backup that only contains the files that have changed since the most recent backup (either full or incremental). A differential backup is a cumulative backup of all changes made since the last full backup. The backup server typically operates in accordance with a backup policy that defines various parameters, such as the target data, the time window to perform the backup process, and the like.
In systems having multiple backup clients and a predefined set of resources for performing the backup, it is desirable to allocate the resources among the backup clients. Without such allocation, resources may be “oversubscribed” among competing backup clients. Such oversubscription leads to the failure of one or more backup tasks due to lack of sufficient resources (i.e., the resources are exhausted prior to completing all of the tasks). Some backup systems generate an inventory at the time of a backup client's backup to determine the size of the resources needed. Such a solution, however, can be computationally time consuming and add an unacceptable amount of delay to the backup process.
Therefore, there is a need for optimal and efficient allocation of resources among backup tasks in a data backup system.